<?php

namespace App\Http\Controllers\App;


use App\Models\Oauth;
use Illuminate\Http\Request;

class OauthController extends BaseController
{
    // 列表显示
    public function index(Request $request)
    {
        if ($request->header('X-Requested-With') == 'XMLHttpRequest') {   // ajax请求

            // 排序
            //['column' => $column, 'dir' => $dir] = $request->get('order')[0];
            $orderArr =  $request->get('order')[0];
            // 排序索引
            $column = $orderArr['column'];
            // 排序类型 升还是降
            $dir = $orderArr['dir'];
            // 排序字段
            $orderField = $request->get('columns')[$column]['data'];

            // 开启位置
            $start = $request->get('start', 0);

            // 搜索关键字
            $title = $request->get('title');

            // 查询对象
            $query = Oauth::where('id', '>', 0);

            // 搜索关键词
            if (!empty($title)) {
                $query->where('title', 'like', "%{$title}%");
            }

            // 获取记录数
            $length = min(100, $request->get('length', 10));
            // 记录总数
            $total = $query->count();

            // 获取数据
            $data = $query->orderBy($orderField, $dir)->offset($start)->limit($length)->get();

            /*
            draw: 客户端调用服务器端次数标识
            recordsTotal: 获取数据记录总条数
            recordsFiltered: 数据过滤后的总数量
            data: 获得的具体数据
            注意：recordsTotal和recordsFiltered都设置为记录的总条数
            */
            $result = [
                'draw' => $request->get('draw'),
                'recordsTotal' => $total,
                'recordsFiltered' => $total,
                'data' => $data
            ];
            return $result;
        }
        return view('admin.oauth.index');
    }

    // 添加显示
    public function create()
    {
        return view('admin.oauth.create');
    }

    // 添加处理
    public function store(Request $request) {
        // 表单验证
        $postData = $this->validate($request, [
            'username' => 'required|unique:apiusers,username',
            'password' => 'required'
        ]);
        // 密码加密
        #$postData['password'] = bcrypt($postData['password']);

        // 入库
        Oauth::create($postData);

        return redirect(route('admin.oauth.index'));

    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Oauth  $oauth
     * @return \Illuminate\Http\Response
     */
    public function show(Oauth $oauth)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Oauth  $oauth
     * @return \Illuminate\Http\Response
     */
    public function edit(Oauth $oauth)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Oauth  $oauth
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Oauth $oauth)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\Oauth  $oauth
     * @return \Illuminate\Http\Response
     */
    public function destroy(Oauth $oauth)
    {
        //
    }
}
